/**
 * 服务接口库
 *
 */
import axios from 'axios';
import {map2DConfig} from "./mapConfig.js";
// axios默认配置
axios.defaults.withCredentials = false;
axios.defaults.baseURL = map2DConfig.services.defaultUrl;
// axios.defaults.headers.common['token'] = token;
// axios.defaults.headers['authorization']= 'Bearer ${token}';
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';//配置请求头

// //添加一个请求拦截器
// axios.interceptors.request.use(function (config) {
//     let token = window.sessionStorage.getItem('token')
//     if (!token) {
//         token = map2DConfig.services.defaultToken;
//     }
//     config.headers.common['token'] = token;
//     //console.dir(config);
//     return config;
// }, function (error) {
//     // Do something with request error
//     console.info("error: ");
//     console.info(error);
//     return Promise.reject(error);
// });
//
// // 添加一个响应拦截器
// axios.interceptors.response.use(function (response) {
//     if (response.data && response.data.code) {
//         if (parseInt(response.data.code) === 108 || parseInt(response.data.code) === 109
//             || response.data.msg === 'TOKEN失效，请重新登录' || response.data.msg === 'TOKEN不存在') {
//             //未登录
//             response.data.msg = "未登录或者登录信息已失效，请重新登录";
//             // road.$message.error(response.data.msg);
//             // routerIndex.push('/login');
//         }
//         if (parseInt(response.data.code) === -1) {
//             response.data.msg = "请求失败";
//             // road.$message.error("请求失败");
//         }
//     }
//     return response;
// }, function (error) {
//     // Do something with response error
//     console.dir(error);
//     // road.$message.error("服务器连接失败");
//     return Promise.reject(error);
// })
/**
 * axios post方式请求数据
 * @param url 请求地址
 * @param postdata post参数
 */
function post(url, postdata) {
    return axios.post(url, postdata,{
        headers: {
            Authorization: 'Bearer ' + localStorage.token
        }
    }).then(function (data) {
        const json = data.data
        if (json.code === 500) {
            console.log('系统错误，请联系管理员')
            return json
        }
        if (json.code === 401) {
            // localStorage.removeItem('token')
            console.log(json.msg)
            return false
        } else if (json.code === 403) {
            console.log(json.msg)
            return json
        } else {
            return json
        }
    }, function (response) {
        if (response) {
            console.log(`${response.config.url} is ${response.status} ${response.statusText}`)
        } else {
            console.log(`${response.config.url} is ${response.message}`)
        }
    })
}

/**
 * axios get方式请求数据
 * @param url 请求地址
 * @param getdata get参数
 */
function get(url, getdata) {
    return axios.get(url, {
        params: getdata,
        headers: {
            Authorization: 'Bearer ' + localStorage.token
        }}).then(function (data) {
        const json = data.data
        if (json.code === 500) {
            console.log('系统错误，请联系管理员')
            return json
        }
        if (json.code === 401) {
            // localStorage.removeItem('token')
            console.log(json.msg)
            return false
        } else if (json.code === 403) {
            console.log(json.msg)
            return json
        } else {
            return json
        }
    }, function (response) {
        if (response) {
            console.log(`${response.config.url} is ${response.status} ${response.statusText}`)
        } else {
            console.log(`${response.config.url} is ${response.message}`)
        }
    })
}

/**
 * 按照条件查询图层信息
 * @param params 参数对象
 */
export function getLayers(params) {
    return post(map2DConfig.services.mapLayers.url, params)
}